import Redis from 'ioredis';
import * as readline from 'readline';

// 创建一个 Redis 客户端
const redis = new Redis({
  host: 'localhost',
  port: 6379,
  connectTimeout: 3000,
  db:1,
});

// 创建接口以读取标准输入和输出
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

async function run() {
  // 60秒
  const EXPIRY_TIME = 60;
  // 设定最大条目数为 10
  const MAX_LENGTH = 3;
  try {
    while (true) {
      // 提示用户输入
      const input = await new Promise<string>((resolve) => {
        rl.question('input:', resolve);
      });

      // 将用户输入的内容推送到 Redis 列表中
      await redis.lpush("myList", input);
      redis.expire("myList", EXPIRY_TIME);

      // 获取当前列表长度
      const currentLength = await redis.llen("myList");

      // 修剪列表以保持最大长度
      if (currentLength > MAX_LENGTH) {
        await redis.ltrim("myList", 0, MAX_LENGTH - 1); // 保持前 MAX_LENGTH 个元素
      }
    }
  } catch (error) {
    console.error('错误:', error);
  } finally {
    // 关闭接口和 Redis 连接
    rl.close();
    await redis.quit();
  }
}

// 运行主函数
run();
